TPTP Problem File: DAT162^1.p
View Solutions
- Solve Problem
%------------------------------------------------------------------------------
% File : DAT162^1 : TPTP v8.2.0. Released v7.0.0.
% Domain : Data Structures
% Problem : Hamming stream 305
% Version : [Bla16] axioms : Especial.
% English :
% Refs : [Loc10] Lochbihler (2010), Coinductive
% : [RB15] Reynolds & Blanchette (2015), A Decision Procedure for
% : [Bla16] Blanchette (2016), Email to Geoff Sutcliffe
% Source : [Bla16]
% Names : hamming_stream__305.p [Bla16]
% Status : Theorem
% Rating : 0.00 v7.5.0, 1.00 v7.3.0, 0.67 v7.2.0, 0.50 v7.1.0
% Syntax : Number of formulae : 330 ( 77 unt; 50 typ; 0 def)
% Number of atoms : 845 ( 181 equ; 0 cnn)
% Maximal formula atoms : 13 ( 3 avg)
% Number of connectives : 3236 ( 117 ~; 36 |; 52 &;2589 @)
% ( 0 <=>; 442 =>; 0 <=; 0 <~>)
% Maximal formula depth : 17 ( 8 avg)
% Number of types : 2 ( 1 usr)
% Number of type conns : 137 ( 137 >; 0 *; 0 +; 0 <<)
% Number of symbols : 50 ( 49 usr; 5 con; 0-4 aty)
% Number of variables : 855 ( 25 ^; 751 !; 40 ?; 855 :)
% ( 39 !>; 0 ?*; 0 @-; 0 @+)
% SPC : TH1_THM_EQU_NAR
% Comments : This file was generated by Isabelle (most likely Sledgehammer)
% 2016-07-13 14:43:25.429
%------------------------------------------------------------------------------
%----Could-be-implicit typings (4)
thf(ty_t_Coinductive__List_Ollist,type,
coinductive_llist: $tType > $tType ).
thf(ty_t_Set_Oset,type,
set: $tType > $tType ).
thf(ty_t_Nat_Onat,type,
nat: $tType ).
thf(ty_t_itself,type,
itself: $tType > $tType ).
%----Explicit typings (46)
thf(sy_cl_HOL_Otype,type,
type:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Rings_Odvd,type,
dvd:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Groups_Oone,type,
one:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Orderings_Oord,type,
ord:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Orderings_Oorder,type,
order:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_GCD_Osemiring__gcd,type,
semiring_gcd:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Orderings_Ono__bot,type,
no_bot:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Orderings_Ono__top,type,
no_top:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Groups_Omonoid__mult,type,
monoid_mult:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Orderings_Olinorder,type,
linorder:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Orderings_Opreorder,type,
preorder:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Orderings_Owellorder,type,
wellorder:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Groups_Osemigroup__mult,type,
semigroup_mult:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Orderings_Odense__order,type,
dense_order:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Rings_Ocomm__semiring__1,type,
comm_semiring_1:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Rings_Olinordered__idom,type,
linordered_idom:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Groups_Ocomm__monoid__mult,type,
comm_monoid_mult:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Rings_Oalgebraic__semidom,type,
algebraic_semidom:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Groups_Oab__semigroup__mult,type,
ab_semigroup_mult:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Orderings_Odense__linorder,type,
dense_linorder:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Rings_Olinordered__semidom,type,
linordered_semidom:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_c_Coinductive__List_Oldistinct,type,
coindu351974385stinct:
!>[A: $tType] : ( ( coinductive_llist @ A ) > $o ) ).
thf(sy_c_Coinductive__List_Olfinite,type,
coinductive_lfinite:
!>[A: $tType] : ( ( coinductive_llist @ A ) > $o ) ).
thf(sy_c_Coinductive__List_Ollist_OLNil,type,
coinductive_LNil:
!>[A: $tType] : ( coinductive_llist @ A ) ).
thf(sy_c_Coinductive__List_Ollist_Olnull,type,
coinductive_lnull:
!>[A: $tType] : ( ( coinductive_llist @ A ) > $o ) ).
thf(sy_c_Coinductive__List_Ollist_Olset,type,
coinductive_lset:
!>[A: $tType] : ( ( coinductive_llist @ A ) > ( set @ A ) ) ).
thf(sy_c_Coinductive__List_Olmember,type,
coinductive_lmember:
!>[A: $tType] : ( A > ( coinductive_llist @ A ) > $o ) ).
thf(sy_c_Coinductive__List_Olsetp,type,
coinductive_lsetp:
!>[A: $tType] : ( ( coinductive_llist @ A ) > A > $o ) ).
thf(sy_c_Coinductive__List_Oord__class_Olsorted,type,
coindu63249387sorted:
!>[A: $tType] : ( ( coinductive_llist @ A ) > $o ) ).
thf(sy_c_Groups_Oone__class_Oone,type,
one_one:
!>[A: $tType] : A ).
thf(sy_c_Groups_Otimes__class_Otimes,type,
times_times:
!>[A: $tType] : ( A > A > A ) ).
thf(sy_c_Hamming__Stream__Mirabelle__rwekfkwckg_Ohamming,type,
hammin2015774020amming: coinductive_llist @ nat ).
thf(sy_c_Hamming__Stream__Mirabelle__rwekfkwckg_Oord_Olmerge,type,
hammin1328233080lmerge:
!>[A: $tType] : ( ( A > A > $o ) > ( coinductive_llist @ A ) > ( coinductive_llist @ A ) > ( coinductive_llist @ A ) ) ).
thf(sy_c_Hamming__Stream__Mirabelle__rwekfkwckg_Oord__class_Olmerge,type,
hammin1138290136lmerge:
!>[A: $tType] : ( ( coinductive_llist @ A ) > ( coinductive_llist @ A ) > ( coinductive_llist @ A ) ) ).
thf(sy_c_Hamming__Stream__Mirabelle__rwekfkwckg_Osmooth,type,
hammin1195055315smooth: nat > $o ).
thf(sy_c_Orderings_Oord__class_Oless,type,
ord_less:
!>[A: $tType] : ( A > A > $o ) ).
thf(sy_c_Orderings_Oord__class_Oless__eq,type,
ord_less_eq:
!>[A: $tType] : ( A > A > $o ) ).
thf(sy_c_Primes_Oprime,type,
prime: nat > $o ).
thf(sy_c_Pure_Otype,type,
type2:
!>[A: $tType] : ( itself @ A ) ).
thf(sy_c_Rings_Odvd__class_Odvd,type,
dvd_dvd:
!>[A: $tType] : ( A > A > $o ) ).
thf(sy_c_Set_OCollect,type,
collect:
!>[A: $tType] : ( ( A > $o ) > ( set @ A ) ) ).
thf(sy_c_member,type,
member:
!>[A: $tType] : ( A > ( set @ A ) > $o ) ).
thf(sy_v_n,type,
n: nat ).
thf(sy_v_n_H____,type,
n2: nat ).
thf(sy_v_na____,type,
na: nat ).
thf(sy_v_p____,type,
p: nat ).
%----Relevant facts (253)
thf(fact_0__092_060open_062smooth_An_H_092_060close_062,axiom,
hammin1195055315smooth @ n2 ).
% \<open>smooth n'\<close>
thf(fact_1__092_060open_062n_H_A_060_An_092_060close_062,axiom,
ord_less @ nat @ n2 @ na ).
% \<open>n' < n\<close>
thf(fact_2_less_OIH,axiom,
! [Y: nat] :
( ( ord_less @ nat @ Y @ na )
=> ( ( hammin1195055315smooth @ Y )
=> ( member @ nat @ Y @ ( coinductive_lset @ nat @ hammin2015774020amming ) ) ) ) ).
% less.IH
thf(fact_3_n,axiom,
( na
= ( times_times @ nat @ p @ n2 ) ) ).
% n
thf(fact_4_hamming__eq__LNil__iff,axiom,
( hammin2015774020amming
!= ( coinductive_LNil @ nat ) ) ).
% hamming_eq_LNil_iff
thf(fact_5_ldistinct__hamming,axiom,
coindu351974385stinct @ nat @ hammin2015774020amming ).
% ldistinct_hamming
thf(fact_6_lsorted__hamming,axiom,
coindu63249387sorted @ nat @ hammin2015774020amming ).
% lsorted_hamming
thf(fact_7_True,axiom,
ord_less @ nat @ ( one_one @ nat ) @ na ).
% True
thf(fact_8_lnull__hamming,axiom,
~ ( coinductive_lnull @ nat @ hammin2015774020amming ) ).
% lnull_hamming
thf(fact_9_lset__lmember,axiom,
! [A: $tType,X: A,Xs: coinductive_llist @ A] :
( ( member @ A @ X @ ( coinductive_lset @ A @ Xs ) )
= ( coinductive_lmember @ A @ X @ Xs ) ) ).
% lset_lmember
thf(fact_10_lfinite__hamming,axiom,
~ ( coinductive_lfinite @ nat @ hammin2015774020amming ) ).
% lfinite_hamming
thf(fact_11_in__lset__lmergeD,axiom,
! [A: $tType] :
( ( ord @ A @ ( type2 @ A ) )
=> ! [X: A,Xs: coinductive_llist @ A,Ys: coinductive_llist @ A] :
( ( member @ A @ X @ ( coinductive_lset @ A @ ( hammin1138290136lmerge @ A @ Xs @ Ys ) ) )
=> ( ( member @ A @ X @ ( coinductive_lset @ A @ Xs ) )
| ( member @ A @ X @ ( coinductive_lset @ A @ Ys ) ) ) ) ) ).
% in_lset_lmergeD
thf(fact_12_ord_Oin__lset__lmergeD,axiom,
! [A: $tType,X: A,Less: A > A > $o,Xs: coinductive_llist @ A,Ys: coinductive_llist @ A] :
( ( member @ A @ X @ ( coinductive_lset @ A @ ( hammin1328233080lmerge @ A @ Less @ Xs @ Ys ) ) )
=> ( ( member @ A @ X @ ( coinductive_lset @ A @ Xs ) )
| ( member @ A @ X @ ( coinductive_lset @ A @ Ys ) ) ) ) ).
% ord.in_lset_lmergeD
thf(fact_13_Coinductive__List_Olset__into__lsetp,axiom,
! [A: $tType,X: A,Xs: coinductive_llist @ A] :
( ( member @ A @ X @ ( coinductive_lset @ A @ Xs ) )
=> ( coinductive_lsetp @ A @ Xs @ X ) ) ).
% Coinductive_List.lset_into_lsetp
thf(fact_14_assms,axiom,
hammin1195055315smooth @ n ).
% assms
thf(fact_15_less_Oprems,axiom,
hammin1195055315smooth @ na ).
% less.prems
thf(fact_16__092_060open_062_092_060And_062thesis_O_A_I_092_060And_062n_H_O_An_A_061_Ap_A_K_An_H_A_092_060Longrightarrow_062_Athesis_J_A_092_060Longrightarrow_062_Athesis_092_060close_062,axiom,
~ ! [N: nat] :
( na
!= ( times_times @ nat @ p @ N ) ) ).
% \<open>\<And>thesis. (\<And>n'. n = p * n' \<Longrightarrow> thesis) \<Longrightarrow> thesis\<close>
thf(fact_17__092_060open_062prime_Ap_092_060close_062,axiom,
prime @ p ).
% \<open>prime p\<close>
thf(fact_18_lfinite__code_I1_J,axiom,
! [A: $tType] : ( coinductive_lfinite @ A @ ( coinductive_LNil @ A ) ) ).
% lfinite_code(1)
thf(fact_19_lmerge_Odisc__iff_I2_J,axiom,
! [A: $tType] :
( ( ord @ A @ ( type2 @ A ) )
=> ! [Xs: coinductive_llist @ A,Ys: coinductive_llist @ A] :
( ( ~ ( coinductive_lnull @ A @ ( hammin1138290136lmerge @ A @ Xs @ Ys ) ) )
= ( ~ ( coinductive_lnull @ A @ Xs )
& ~ ( coinductive_lnull @ A @ Ys ) ) ) ) ).
% lmerge.disc_iff(2)
thf(fact_20_lnull__lmerge,axiom,
! [A: $tType] :
( ( ord @ A @ ( type2 @ A ) )
=> ! [Xs: coinductive_llist @ A,Ys: coinductive_llist @ A] :
( ( coinductive_lnull @ A @ ( hammin1138290136lmerge @ A @ Xs @ Ys ) )
= ( ( coinductive_lnull @ A @ Xs )
| ( coinductive_lnull @ A @ Ys ) ) ) ) ).
% lnull_lmerge
thf(fact_21_lmerge__LNil_I2_J,axiom,
! [A: $tType] :
( ( ord @ A @ ( type2 @ A ) )
=> ! [Xs: coinductive_llist @ A] :
( ( hammin1138290136lmerge @ A @ Xs @ ( coinductive_LNil @ A ) )
= ( coinductive_LNil @ A ) ) ) ).
% lmerge_LNil(2)
thf(fact_22_lmerge__LNil_I1_J,axiom,
! [A: $tType] :
( ( ord @ A @ ( type2 @ A ) )
=> ! [Ys: coinductive_llist @ A] :
( ( hammin1138290136lmerge @ A @ ( coinductive_LNil @ A ) @ Ys )
= ( coinductive_LNil @ A ) ) ) ).
% lmerge_LNil(1)
thf(fact_23_lsorted__code_I1_J,axiom,
! [A: $tType] :
( ( ord @ A @ ( type2 @ A ) )
=> ( coindu63249387sorted @ A @ ( coinductive_LNil @ A ) ) ) ).
% lsorted_code(1)
thf(fact_24_ldistinct__LNil__code,axiom,
! [A: $tType] : ( coindu351974385stinct @ A @ ( coinductive_LNil @ A ) ) ).
% ldistinct_LNil_code
thf(fact_25_smooth__times,axiom,
! [X: nat,Y: nat] :
( ( hammin1195055315smooth @ ( times_times @ nat @ X @ Y ) )
= ( ( hammin1195055315smooth @ X )
& ( hammin1195055315smooth @ Y ) ) ) ).
% smooth_times
thf(fact_26__092_060open_062p_Advd_An_092_060close_062,axiom,
dvd_dvd @ nat @ p @ na ).
% \<open>p dvd n\<close>
thf(fact_27_llist_Odisc_I1_J,axiom,
! [A: $tType] : ( coinductive_lnull @ A @ ( coinductive_LNil @ A ) ) ).
% llist.disc(1)
thf(fact_28_llist_OdiscI_I1_J,axiom,
! [A: $tType,Llist: coinductive_llist @ A] :
( ( Llist
= ( coinductive_LNil @ A ) )
=> ( coinductive_lnull @ A @ Llist ) ) ).
% llist.discI(1)
thf(fact_29_lmember__code_I1_J,axiom,
! [A: $tType,X: A] :
~ ( coinductive_lmember @ A @ X @ ( coinductive_LNil @ A ) ) ).
% lmember_code(1)
thf(fact_30_llist_Ocollapse_I1_J,axiom,
! [A: $tType,Llist: coinductive_llist @ A] :
( ( coinductive_lnull @ A @ Llist )
=> ( Llist
= ( coinductive_LNil @ A ) ) ) ).
% llist.collapse(1)
thf(fact_31_ord_Olmerge_Octr_I1_J,axiom,
! [A: $tType,Xs: coinductive_llist @ A,Ys: coinductive_llist @ A,Less: A > A > $o] :
( ( ( coinductive_lnull @ A @ Xs )
| ( coinductive_lnull @ A @ Ys ) )
=> ( ( hammin1328233080lmerge @ A @ Less @ Xs @ Ys )
= ( coinductive_LNil @ A ) ) ) ).
% ord.lmerge.ctr(1)
thf(fact_32_ord_Olmerge_Odisc_I2_J,axiom,
! [A: $tType,Xs: coinductive_llist @ A,Ys: coinductive_llist @ A,Less: A > A > $o] :
( ~ ( coinductive_lnull @ A @ Xs )
=> ( ~ ( coinductive_lnull @ A @ Ys )
=> ~ ( coinductive_lnull @ A @ ( hammin1328233080lmerge @ A @ Less @ Xs @ Ys ) ) ) ) ).
% ord.lmerge.disc(2)
thf(fact_33_ord_Olmerge_Odisc_I1_J,axiom,
! [A: $tType,Xs: coinductive_llist @ A,Ys: coinductive_llist @ A,Less: A > A > $o] :
( ( ( coinductive_lnull @ A @ Xs )
| ( coinductive_lnull @ A @ Ys ) )
=> ( coinductive_lnull @ A @ ( hammin1328233080lmerge @ A @ Less @ Xs @ Ys ) ) ) ).
% ord.lmerge.disc(1)
thf(fact_34_ord_Olmerge__LNil_I2_J,axiom,
! [A: $tType,Less: A > A > $o,Xs: coinductive_llist @ A] :
( ( hammin1328233080lmerge @ A @ Less @ Xs @ ( coinductive_LNil @ A ) )
= ( coinductive_LNil @ A ) ) ).
% ord.lmerge_LNil(2)
thf(fact_35_ord_Olmerge__LNil_I1_J,axiom,
! [A: $tType,Less: A > A > $o,Ys: coinductive_llist @ A] :
( ( hammin1328233080lmerge @ A @ Less @ ( coinductive_LNil @ A ) @ Ys )
= ( coinductive_LNil @ A ) ) ).
% ord.lmerge_LNil(1)
thf(fact_36_ord_Olmerge_Odisc__iff_I2_J,axiom,
! [A: $tType,Less: A > A > $o,Xs: coinductive_llist @ A,Ys: coinductive_llist @ A] :
( ( ~ ( coinductive_lnull @ A @ ( hammin1328233080lmerge @ A @ Less @ Xs @ Ys ) ) )
= ( ~ ( coinductive_lnull @ A @ Xs )
& ~ ( coinductive_lnull @ A @ Ys ) ) ) ).
% ord.lmerge.disc_iff(2)
thf(fact_37_lmerge_Octr_I1_J,axiom,
! [A: $tType] :
( ( ord @ A @ ( type2 @ A ) )
=> ! [Xs: coinductive_llist @ A,Ys: coinductive_llist @ A] :
( ( ( coinductive_lnull @ A @ Xs )
| ( coinductive_lnull @ A @ Ys ) )
=> ( ( hammin1138290136lmerge @ A @ Xs @ Ys )
= ( coinductive_LNil @ A ) ) ) ) ).
% lmerge.ctr(1)
thf(fact_38_lmerge_Odisc_I2_J,axiom,
! [A: $tType] :
( ( ord @ A @ ( type2 @ A ) )
=> ! [Xs: coinductive_llist @ A,Ys: coinductive_llist @ A] :
( ~ ( coinductive_lnull @ A @ Xs )
=> ( ~ ( coinductive_lnull @ A @ Ys )
=> ~ ( coinductive_lnull @ A @ ( hammin1138290136lmerge @ A @ Xs @ Ys ) ) ) ) ) ).
% lmerge.disc(2)
thf(fact_39_lmerge_Odisc_I1_J,axiom,
! [A: $tType] :
( ( ord @ A @ ( type2 @ A ) )
=> ! [Xs: coinductive_llist @ A,Ys: coinductive_llist @ A] :
( ( ( coinductive_lnull @ A @ Xs )
| ( coinductive_lnull @ A @ Ys ) )
=> ( coinductive_lnull @ A @ ( hammin1138290136lmerge @ A @ Xs @ Ys ) ) ) ) ).
% lmerge.disc(1)
thf(fact_40_lzip_Oexhaust,axiom,
! [A: $tType,B: $tType,Xs: coinductive_llist @ A,Ys: coinductive_llist @ B] :
( ~ ( ( coinductive_lnull @ A @ Xs )
| ( coinductive_lnull @ B @ Ys ) )
=> ~ ( ~ ( coinductive_lnull @ A @ Xs )
=> ( coinductive_lnull @ B @ Ys ) ) ) ).
% lzip.exhaust
thf(fact_41_ldistinct_OLNil,axiom,
! [A: $tType] : ( coindu351974385stinct @ A @ ( coinductive_LNil @ A ) ) ).
% ldistinct.LNil
thf(fact_42_lappend_Oexhaust,axiom,
! [A: $tType,Xs: coinductive_llist @ A,Ys: coinductive_llist @ A] :
( ( ( coinductive_lnull @ A @ Xs )
=> ~ ( coinductive_lnull @ A @ Ys ) )
=> ( ~ ( coinductive_lnull @ A @ Xs )
| ~ ( coinductive_lnull @ A @ Ys ) ) ) ).
% lappend.exhaust
thf(fact_43_lnull__def,axiom,
! [A: $tType] :
( ( coinductive_lnull @ A )
= ( ^ [Llist2: coinductive_llist @ A] :
( Llist2
= ( coinductive_LNil @ A ) ) ) ) ).
% lnull_def
thf(fact_44_mem__Collect__eq,axiom,
! [A: $tType,A2: A,P: A > $o] :
( ( member @ A @ A2 @ ( collect @ A @ P ) )
= ( P @ A2 ) ) ).
% mem_Collect_eq
thf(fact_45_Collect__mem__eq,axiom,
! [A: $tType,A3: set @ A] :
( ( collect @ A
@ ^ [X2: A] : ( member @ A @ X2 @ A3 ) )
= A3 ) ).
% Collect_mem_eq
thf(fact_46_Collect__cong,axiom,
! [A: $tType,P: A > $o,Q: A > $o] :
( ! [X3: A] :
( ( P @ X3 )
= ( Q @ X3 ) )
=> ( ( collect @ A @ P )
= ( collect @ A @ Q ) ) ) ).
% Collect_cong
thf(fact_47_lnull__imp__lfinite,axiom,
! [A: $tType,Xs: coinductive_llist @ A] :
( ( coinductive_lnull @ A @ Xs )
=> ( coinductive_lfinite @ A @ Xs ) ) ).
% lnull_imp_lfinite
thf(fact_48_lfinite__LNil,axiom,
! [A: $tType] : ( coinductive_lfinite @ A @ ( coinductive_LNil @ A ) ) ).
% lfinite_LNil
thf(fact_49_LNil,axiom,
! [A: $tType] :
( ( ord @ A @ ( type2 @ A ) )
=> ( coindu63249387sorted @ A @ ( coinductive_LNil @ A ) ) ) ).
% LNil
thf(fact_50_ord_Olnull__lmerge,axiom,
! [A: $tType,Less: A > A > $o,Xs: coinductive_llist @ A,Ys: coinductive_llist @ A] :
( ( coinductive_lnull @ A @ ( hammin1328233080lmerge @ A @ Less @ Xs @ Ys ) )
= ( ( coinductive_lnull @ A @ Xs )
| ( coinductive_lnull @ A @ Ys ) ) ) ).
% ord.lnull_lmerge
thf(fact_51_ord_Olmerge_Oexhaust,axiom,
! [A: $tType,Xs: coinductive_llist @ A,Ys: coinductive_llist @ A] :
( ~ ( ( coinductive_lnull @ A @ Xs )
| ( coinductive_lnull @ A @ Ys ) )
=> ~ ( ~ ( coinductive_lnull @ A @ Xs )
=> ( coinductive_lnull @ A @ Ys ) ) ) ).
% ord.lmerge.exhaust
thf(fact_52_ord_Olfinite__lmergeD,axiom,
! [A: $tType,Less: A > A > $o,Xs: coinductive_llist @ A,Ys: coinductive_llist @ A] :
( ( coinductive_lfinite @ A @ ( hammin1328233080lmerge @ A @ Less @ Xs @ Ys ) )
=> ( ( coinductive_lfinite @ A @ Xs )
| ( coinductive_lfinite @ A @ Ys ) ) ) ).
% ord.lfinite_lmergeD
thf(fact_53_ord_Olfinite__lmergeI,axiom,
! [A: $tType,Xs: coinductive_llist @ A,Ys: coinductive_llist @ A,Less: A > A > $o] :
( ( coinductive_lfinite @ A @ Xs )
=> ( ( coinductive_lfinite @ A @ Ys )
=> ( coinductive_lfinite @ A @ ( hammin1328233080lmerge @ A @ Less @ Xs @ Ys ) ) ) ) ).
% ord.lfinite_lmergeI
thf(fact_54_ord_Olinfinite__lmerge,axiom,
! [A: $tType,Xs: coinductive_llist @ A,Ys: coinductive_llist @ A,Less: A > A > $o] :
( ~ ( coinductive_lfinite @ A @ Xs )
=> ( ~ ( coinductive_lfinite @ A @ Ys )
=> ~ ( coinductive_lfinite @ A @ ( hammin1328233080lmerge @ A @ Less @ Xs @ Ys ) ) ) ) ).
% ord.linfinite_lmerge
thf(fact_55_ord_Olmerge__eq__LNil__iff,axiom,
! [A: $tType,Less: A > A > $o,Xs: coinductive_llist @ A,Ys: coinductive_llist @ A] :
( ( ( hammin1328233080lmerge @ A @ Less @ Xs @ Ys )
= ( coinductive_LNil @ A ) )
= ( ( Xs
= ( coinductive_LNil @ A ) )
| ( Ys
= ( coinductive_LNil @ A ) ) ) ) ).
% ord.lmerge_eq_LNil_iff
thf(fact_56_lmerge_Oexhaust,axiom,
! [A: $tType] :
( ( ord @ A @ ( type2 @ A ) )
=> ! [Xs: coinductive_llist @ A,Ys: coinductive_llist @ A] :
( ~ ( ( coinductive_lnull @ A @ Xs )
| ( coinductive_lnull @ A @ Ys ) )
=> ~ ( ~ ( coinductive_lnull @ A @ Xs )
=> ( coinductive_lnull @ A @ Ys ) ) ) ) ).
% lmerge.exhaust
thf(fact_57_lsorted__ldistinct__lset__unique,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [Xs: coinductive_llist @ A,Ys: coinductive_llist @ A] :
( ( coindu63249387sorted @ A @ Xs )
=> ( ( coindu351974385stinct @ A @ Xs )
=> ( ( coindu63249387sorted @ A @ Ys )
=> ( ( coindu351974385stinct @ A @ Ys )
=> ( ( ( coinductive_lset @ A @ Xs )
= ( coinductive_lset @ A @ Ys ) )
=> ( Xs = Ys ) ) ) ) ) ) ) ).
% lsorted_ldistinct_lset_unique
thf(fact_58_lfinite__lmergeD,axiom,
! [A: $tType] :
( ( ord @ A @ ( type2 @ A ) )
=> ! [Xs: coinductive_llist @ A,Ys: coinductive_llist @ A] :
( ( coinductive_lfinite @ A @ ( hammin1138290136lmerge @ A @ Xs @ Ys ) )
=> ( ( coinductive_lfinite @ A @ Xs )
| ( coinductive_lfinite @ A @ Ys ) ) ) ) ).
% lfinite_lmergeD
thf(fact_59_lfinite__lmergeI,axiom,
! [A: $tType] :
( ( ord @ A @ ( type2 @ A ) )
=> ! [Xs: coinductive_llist @ A,Ys: coinductive_llist @ A] :
( ( coinductive_lfinite @ A @ Xs )
=> ( ( coinductive_lfinite @ A @ Ys )
=> ( coinductive_lfinite @ A @ ( hammin1138290136lmerge @ A @ Xs @ Ys ) ) ) ) ) ).
% lfinite_lmergeI
thf(fact_60_linfinite__lmerge,axiom,
! [A: $tType] :
( ( ord @ A @ ( type2 @ A ) )
=> ! [Xs: coinductive_llist @ A,Ys: coinductive_llist @ A] :
( ~ ( coinductive_lfinite @ A @ Xs )
=> ( ~ ( coinductive_lfinite @ A @ Ys )
=> ~ ( coinductive_lfinite @ A @ ( hammin1138290136lmerge @ A @ Xs @ Ys ) ) ) ) ) ).
% linfinite_lmerge
thf(fact_61_lmerge__eq__LNil__iff,axiom,
! [A: $tType] :
( ( ord @ A @ ( type2 @ A ) )
=> ! [Xs: coinductive_llist @ A,Ys: coinductive_llist @ A] :
( ( ( hammin1138290136lmerge @ A @ Xs @ Ys )
= ( coinductive_LNil @ A ) )
= ( ( Xs
= ( coinductive_LNil @ A ) )
| ( Ys
= ( coinductive_LNil @ A ) ) ) ) ) ).
% lmerge_eq_LNil_iff
thf(fact_62_lsorted__lmerge,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [Xs: coinductive_llist @ A,Ys: coinductive_llist @ A] :
( ( coindu63249387sorted @ A @ Xs )
=> ( ( coindu63249387sorted @ A @ Ys )
=> ( coindu63249387sorted @ A @ ( hammin1138290136lmerge @ A @ Xs @ Ys ) ) ) ) ) ).
% lsorted_lmerge
thf(fact_63_ldistinct__lmerge,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [Xs: coinductive_llist @ A,Ys: coinductive_llist @ A] :
( ( coindu63249387sorted @ A @ Xs )
=> ( ( coindu63249387sorted @ A @ Ys )
=> ( ( coindu351974385stinct @ A @ Xs )
=> ( ( coindu351974385stinct @ A @ Ys )
=> ( coindu351974385stinct @ A @ ( hammin1138290136lmerge @ A @ Xs @ Ys ) ) ) ) ) ) ) ).
% ldistinct_lmerge
thf(fact_64_lsetp__into__lset,axiom,
! [A: $tType,Xs: coinductive_llist @ A,X: A] :
( ( coinductive_lsetp @ A @ Xs @ X )
=> ( member @ A @ X @ ( coinductive_lset @ A @ Xs ) ) ) ).
% lsetp_into_lset
thf(fact_65_nat__1__eq__mult__iff,axiom,
! [M: nat,N2: nat] :
( ( ( one_one @ nat )
= ( times_times @ nat @ M @ N2 ) )
= ( ( M
= ( one_one @ nat ) )
& ( N2
= ( one_one @ nat ) ) ) ) ).
% nat_1_eq_mult_iff
thf(fact_66_nat__mult__eq__1__iff,axiom,
! [M: nat,N2: nat] :
( ( ( times_times @ nat @ M @ N2 )
= ( one_one @ nat ) )
= ( ( M
= ( one_one @ nat ) )
& ( N2
= ( one_one @ nat ) ) ) ) ).
% nat_mult_eq_1_iff
thf(fact_67_mult_Oleft__neutral,axiom,
! [A: $tType] :
( ( monoid_mult @ A @ ( type2 @ A ) )
=> ! [A2: A] :
( ( times_times @ A @ ( one_one @ A ) @ A2 )
= A2 ) ) ).
% mult.left_neutral
thf(fact_68_mult_Oright__neutral,axiom,
! [A: $tType] :
( ( monoid_mult @ A @ ( type2 @ A ) )
=> ! [A2: A] :
( ( times_times @ A @ A2 @ ( one_one @ A ) )
= A2 ) ) ).
% mult.right_neutral
thf(fact_69_less__1__mult,axiom,
! [A: $tType] :
( ( linordered_semidom @ A @ ( type2 @ A ) )
=> ! [M: A,N2: A] :
( ( ord_less @ A @ ( one_one @ A ) @ M )
=> ( ( ord_less @ A @ ( one_one @ A ) @ N2 )
=> ( ord_less @ A @ ( one_one @ A ) @ ( times_times @ A @ M @ N2 ) ) ) ) ) ).
% less_1_mult
thf(fact_70_nat__mult__1,axiom,
! [N2: nat] :
( ( times_times @ nat @ ( one_one @ nat ) @ N2 )
= N2 ) ).
% nat_mult_1
thf(fact_71_nat__mult__1__right,axiom,
! [N2: nat] :
( ( times_times @ nat @ N2 @ ( one_one @ nat ) )
= N2 ) ).
% nat_mult_1_right
thf(fact_72_semiring__normalization__rules_I12_J,axiom,
! [A: $tType] :
( ( comm_semiring_1 @ A @ ( type2 @ A ) )
=> ! [A2: A] :
( ( times_times @ A @ A2 @ ( one_one @ A ) )
= A2 ) ) ).
% semiring_normalization_rules(12)
thf(fact_73_semiring__normalization__rules_I11_J,axiom,
! [A: $tType] :
( ( comm_semiring_1 @ A @ ( type2 @ A ) )
=> ! [A2: A] :
( ( times_times @ A @ ( one_one @ A ) @ A2 )
= A2 ) ) ).
% semiring_normalization_rules(11)
thf(fact_74_comm__monoid__mult__class_Omult__1,axiom,
! [A: $tType] :
( ( comm_monoid_mult @ A @ ( type2 @ A ) )
=> ! [A2: A] :
( ( times_times @ A @ ( one_one @ A ) @ A2 )
= A2 ) ) ).
% comm_monoid_mult_class.mult_1
thf(fact_75__092_060open_062_092_060exists_062p_O_Aprime_Ap_A_092_060and_062_Ap_Advd_An_092_060close_062,axiom,
? [P2: nat] :
( ( prime @ P2 )
& ( dvd_dvd @ nat @ P2 @ na ) ) ).
% \<open>\<exists>p. prime p \<and> p dvd n\<close>
thf(fact_76_nat__dvd__1__iff__1,axiom,
! [M: nat] :
( ( dvd_dvd @ nat @ M @ ( one_one @ nat ) )
= ( M
= ( one_one @ nat ) ) ) ).
% nat_dvd_1_iff_1
thf(fact_77_unit__prod,axiom,
! [A: $tType] :
( ( algebraic_semidom @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A] :
( ( dvd_dvd @ A @ A2 @ ( one_one @ A ) )
=> ( ( dvd_dvd @ A @ B2 @ ( one_one @ A ) )
=> ( dvd_dvd @ A @ ( times_times @ A @ A2 @ B2 ) @ ( one_one @ A ) ) ) ) ) ).
% unit_prod
thf(fact_78_dvd__trans,axiom,
! [A: $tType] :
( ( comm_monoid_mult @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A,C: A] :
( ( dvd_dvd @ A @ A2 @ B2 )
=> ( ( dvd_dvd @ A @ B2 @ C )
=> ( dvd_dvd @ A @ A2 @ C ) ) ) ) ).
% dvd_trans
thf(fact_79_dvd__refl,axiom,
! [A: $tType] :
( ( comm_monoid_mult @ A @ ( type2 @ A ) )
=> ! [A2: A] : ( dvd_dvd @ A @ A2 @ A2 ) ) ).
% dvd_refl
thf(fact_80_dvd__antisym,axiom,
! [M: nat,N2: nat] :
( ( dvd_dvd @ nat @ M @ N2 )
=> ( ( dvd_dvd @ nat @ N2 @ M )
=> ( M = N2 ) ) ) ).
% dvd_antisym
thf(fact_81_prime__nat__dvdD,axiom,
! [P3: nat,N2: nat] :
( ( prime @ P3 )
=> ( ( dvd_dvd @ nat @ N2 @ P3 )
=> ( ( N2
= ( one_one @ nat ) )
| ( N2 = P3 ) ) ) ) ).
% prime_nat_dvdD
thf(fact_82_dvd__triv__right,axiom,
! [A: $tType] :
( ( comm_monoid_mult @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A] : ( dvd_dvd @ A @ A2 @ ( times_times @ A @ B2 @ A2 ) ) ) ).
% dvd_triv_right
thf(fact_83_dvd__mult__right,axiom,
! [A: $tType] :
( ( comm_monoid_mult @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A,C: A] :
( ( dvd_dvd @ A @ ( times_times @ A @ A2 @ B2 ) @ C )
=> ( dvd_dvd @ A @ B2 @ C ) ) ) ).
% dvd_mult_right
thf(fact_84_mult__dvd__mono,axiom,
! [A: $tType] :
( ( comm_monoid_mult @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A,C: A,D: A] :
( ( dvd_dvd @ A @ A2 @ B2 )
=> ( ( dvd_dvd @ A @ C @ D )
=> ( dvd_dvd @ A @ ( times_times @ A @ A2 @ C ) @ ( times_times @ A @ B2 @ D ) ) ) ) ) ).
% mult_dvd_mono
thf(fact_85_dvd__triv__left,axiom,
! [A: $tType] :
( ( comm_monoid_mult @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A] : ( dvd_dvd @ A @ A2 @ ( times_times @ A @ A2 @ B2 ) ) ) ).
% dvd_triv_left
thf(fact_86_dvd__mult__left,axiom,
! [A: $tType] :
( ( comm_monoid_mult @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A,C: A] :
( ( dvd_dvd @ A @ ( times_times @ A @ A2 @ B2 ) @ C )
=> ( dvd_dvd @ A @ A2 @ C ) ) ) ).
% dvd_mult_left
thf(fact_87_dvd__mult2,axiom,
! [A: $tType] :
( ( comm_monoid_mult @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A,C: A] :
( ( dvd_dvd @ A @ A2 @ B2 )
=> ( dvd_dvd @ A @ A2 @ ( times_times @ A @ B2 @ C ) ) ) ) ).
% dvd_mult2
thf(fact_88_dvd__mult,axiom,
! [A: $tType] :
( ( comm_monoid_mult @ A @ ( type2 @ A ) )
=> ! [A2: A,C: A,B2: A] :
( ( dvd_dvd @ A @ A2 @ C )
=> ( dvd_dvd @ A @ A2 @ ( times_times @ A @ B2 @ C ) ) ) ) ).
% dvd_mult
thf(fact_89_dvd__def,axiom,
! [A: $tType] :
( ( dvd @ A @ ( type2 @ A ) )
=> ( ( dvd_dvd @ A )
= ( ^ [B3: A,A4: A] :
? [K: A] :
( A4
= ( times_times @ A @ B3 @ K ) ) ) ) ) ).
% dvd_def
thf(fact_90_dvdI,axiom,
! [A: $tType] :
( ( dvd @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A,K2: A] :
( ( A2
= ( times_times @ A @ B2 @ K2 ) )
=> ( dvd_dvd @ A @ B2 @ A2 ) ) ) ).
% dvdI
thf(fact_91_dvdE,axiom,
! [A: $tType] :
( ( dvd @ A @ ( type2 @ A ) )
=> ! [B2: A,A2: A] :
( ( dvd_dvd @ A @ B2 @ A2 )
=> ~ ! [K3: A] :
( A2
!= ( times_times @ A @ B2 @ K3 ) ) ) ) ).
% dvdE
thf(fact_92_dvd__unit__imp__unit,axiom,
! [A: $tType] :
( ( algebraic_semidom @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A] :
( ( dvd_dvd @ A @ A2 @ B2 )
=> ( ( dvd_dvd @ A @ B2 @ ( one_one @ A ) )
=> ( dvd_dvd @ A @ A2 @ ( one_one @ A ) ) ) ) ) ).
% dvd_unit_imp_unit
thf(fact_93_unit__imp__dvd,axiom,
! [A: $tType] :
( ( algebraic_semidom @ A @ ( type2 @ A ) )
=> ! [B2: A,A2: A] :
( ( dvd_dvd @ A @ B2 @ ( one_one @ A ) )
=> ( dvd_dvd @ A @ B2 @ A2 ) ) ) ).
% unit_imp_dvd
thf(fact_94_one__dvd,axiom,
! [A: $tType] :
( ( comm_monoid_mult @ A @ ( type2 @ A ) )
=> ! [A2: A] : ( dvd_dvd @ A @ ( one_one @ A ) @ A2 ) ) ).
% one_dvd
thf(fact_95_unit__mult__right__cancel,axiom,
! [A: $tType] :
( ( algebraic_semidom @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A,C: A] :
( ( dvd_dvd @ A @ A2 @ ( one_one @ A ) )
=> ( ( ( times_times @ A @ B2 @ A2 )
= ( times_times @ A @ C @ A2 ) )
= ( B2 = C ) ) ) ) ).
% unit_mult_right_cancel
thf(fact_96_unit__mult__left__cancel,axiom,
! [A: $tType] :
( ( algebraic_semidom @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A,C: A] :
( ( dvd_dvd @ A @ A2 @ ( one_one @ A ) )
=> ( ( ( times_times @ A @ A2 @ B2 )
= ( times_times @ A @ A2 @ C ) )
= ( B2 = C ) ) ) ) ).
% unit_mult_left_cancel
thf(fact_97_mult__unit__dvd__iff,axiom,
! [A: $tType] :
( ( algebraic_semidom @ A @ ( type2 @ A ) )
=> ! [B2: A,A2: A,C: A] :
( ( dvd_dvd @ A @ B2 @ ( one_one @ A ) )
=> ( ( dvd_dvd @ A @ ( times_times @ A @ A2 @ B2 ) @ C )
= ( dvd_dvd @ A @ A2 @ C ) ) ) ) ).
% mult_unit_dvd_iff
thf(fact_98_dvd__mult__unit__iff,axiom,
! [A: $tType] :
( ( algebraic_semidom @ A @ ( type2 @ A ) )
=> ! [B2: A,A2: A,C: A] :
( ( dvd_dvd @ A @ B2 @ ( one_one @ A ) )
=> ( ( dvd_dvd @ A @ A2 @ ( times_times @ A @ C @ B2 ) )
= ( dvd_dvd @ A @ A2 @ C ) ) ) ) ).
% dvd_mult_unit_iff
thf(fact_99_is__unit__mult__iff,axiom,
! [A: $tType] :
( ( algebraic_semidom @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A] :
( ( dvd_dvd @ A @ ( times_times @ A @ A2 @ B2 ) @ ( one_one @ A ) )
= ( ( dvd_dvd @ A @ A2 @ ( one_one @ A ) )
& ( dvd_dvd @ A @ B2 @ ( one_one @ A ) ) ) ) ) ).
% is_unit_mult_iff
thf(fact_100_linorder__neqE__linordered__idom,axiom,
! [A: $tType] :
( ( linordered_idom @ A @ ( type2 @ A ) )
=> ! [X: A,Y: A] :
( ( X != Y )
=> ( ~ ( ord_less @ A @ X @ Y )
=> ( ord_less @ A @ Y @ X ) ) ) ) ).
% linorder_neqE_linordered_idom
thf(fact_101_mult_Oleft__commute,axiom,
! [A: $tType] :
( ( ab_semigroup_mult @ A @ ( type2 @ A ) )
=> ! [B2: A,A2: A,C: A] :
( ( times_times @ A @ B2 @ ( times_times @ A @ A2 @ C ) )
= ( times_times @ A @ A2 @ ( times_times @ A @ B2 @ C ) ) ) ) ).
% mult.left_commute
thf(fact_102_mult_Ocommute,axiom,
! [A: $tType] :
( ( ab_semigroup_mult @ A @ ( type2 @ A ) )
=> ( ( times_times @ A )
= ( ^ [A4: A,B3: A] : ( times_times @ A @ B3 @ A4 ) ) ) ) ).
% mult.commute
thf(fact_103_mult_Oassoc,axiom,
! [A: $tType] :
( ( semigroup_mult @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A,C: A] :
( ( times_times @ A @ ( times_times @ A @ A2 @ B2 ) @ C )
= ( times_times @ A @ A2 @ ( times_times @ A @ B2 @ C ) ) ) ) ).
% mult.assoc
thf(fact_104_semiring__normalization__rules_I7_J,axiom,
! [A: $tType] :
( ( comm_semiring_1 @ A @ ( type2 @ A ) )
=> ( ( times_times @ A )
= ( ^ [A4: A,B3: A] : ( times_times @ A @ B3 @ A4 ) ) ) ) ).
% semiring_normalization_rules(7)
thf(fact_105_semiring__normalization__rules_I13_J,axiom,
! [A: $tType] :
( ( comm_semiring_1 @ A @ ( type2 @ A ) )
=> ! [Lx: A,Ly: A,Rx: A,Ry: A] :
( ( times_times @ A @ ( times_times @ A @ Lx @ Ly ) @ ( times_times @ A @ Rx @ Ry ) )
= ( times_times @ A @ ( times_times @ A @ Lx @ Rx ) @ ( times_times @ A @ Ly @ Ry ) ) ) ) ).
% semiring_normalization_rules(13)
thf(fact_106_semiring__normalization__rules_I14_J,axiom,
! [A: $tType] :
( ( comm_semiring_1 @ A @ ( type2 @ A ) )
=> ! [Lx: A,Ly: A,Rx: A,Ry: A] :
( ( times_times @ A @ ( times_times @ A @ Lx @ Ly ) @ ( times_times @ A @ Rx @ Ry ) )
= ( times_times @ A @ Lx @ ( times_times @ A @ Ly @ ( times_times @ A @ Rx @ Ry ) ) ) ) ) ).
% semiring_normalization_rules(14)
thf(fact_107_semiring__normalization__rules_I15_J,axiom,
! [A: $tType] :
( ( comm_semiring_1 @ A @ ( type2 @ A ) )
=> ! [Lx: A,Ly: A,Rx: A,Ry: A] :
( ( times_times @ A @ ( times_times @ A @ Lx @ Ly ) @ ( times_times @ A @ Rx @ Ry ) )
= ( times_times @ A @ Rx @ ( times_times @ A @ ( times_times @ A @ Lx @ Ly ) @ Ry ) ) ) ) ).
% semiring_normalization_rules(15)
thf(fact_108_semiring__normalization__rules_I16_J,axiom,
! [A: $tType] :
( ( comm_semiring_1 @ A @ ( type2 @ A ) )
=> ! [Lx: A,Ly: A,Rx: A] :
( ( times_times @ A @ ( times_times @ A @ Lx @ Ly ) @ Rx )
= ( times_times @ A @ ( times_times @ A @ Lx @ Rx ) @ Ly ) ) ) ).
% semiring_normalization_rules(16)
thf(fact_109_semiring__normalization__rules_I17_J,axiom,
! [A: $tType] :
( ( comm_semiring_1 @ A @ ( type2 @ A ) )
=> ! [Lx: A,Ly: A,Rx: A] :
( ( times_times @ A @ ( times_times @ A @ Lx @ Ly ) @ Rx )
= ( times_times @ A @ Lx @ ( times_times @ A @ Ly @ Rx ) ) ) ) ).
% semiring_normalization_rules(17)
thf(fact_110_semiring__normalization__rules_I18_J,axiom,
! [A: $tType] :
( ( comm_semiring_1 @ A @ ( type2 @ A ) )
=> ! [Lx: A,Rx: A,Ry: A] :
( ( times_times @ A @ Lx @ ( times_times @ A @ Rx @ Ry ) )
= ( times_times @ A @ ( times_times @ A @ Lx @ Rx ) @ Ry ) ) ) ).
% semiring_normalization_rules(18)
thf(fact_111_semiring__normalization__rules_I19_J,axiom,
! [A: $tType] :
( ( comm_semiring_1 @ A @ ( type2 @ A ) )
=> ! [Lx: A,Rx: A,Ry: A] :
( ( times_times @ A @ Lx @ ( times_times @ A @ Rx @ Ry ) )
= ( times_times @ A @ Rx @ ( times_times @ A @ Lx @ Ry ) ) ) ) ).
% semiring_normalization_rules(19)
thf(fact_112_ab__semigroup__mult__class_Omult__ac_I1_J,axiom,
! [A: $tType] :
( ( ab_semigroup_mult @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A,C: A] :
( ( times_times @ A @ ( times_times @ A @ A2 @ B2 ) @ C )
= ( times_times @ A @ A2 @ ( times_times @ A @ B2 @ C ) ) ) ) ).
% ab_semigroup_mult_class.mult_ac(1)
thf(fact_113_one__reorient,axiom,
! [A: $tType] :
( ( one @ A @ ( type2 @ A ) )
=> ! [X: A] :
( ( ( one_one @ A )
= X )
= ( X
= ( one_one @ A ) ) ) ) ).
% one_reorient
thf(fact_114_infinite__descent__measure,axiom,
! [A: $tType,P: A > $o,V: A > nat,X: A] :
( ! [X3: A] :
( ~ ( P @ X3 )
=> ? [Y2: A] :
( ( ord_less @ nat @ ( V @ Y2 ) @ ( V @ X3 ) )
& ~ ( P @ Y2 ) ) )
=> ( P @ X ) ) ).
% infinite_descent_measure
thf(fact_115_measure__induct__rule,axiom,
! [A: $tType,F: A > nat,P: A > $o,A2: A] :
( ! [X3: A] :
( ! [Y2: A] :
( ( ord_less @ nat @ ( F @ Y2 ) @ ( F @ X3 ) )
=> ( P @ Y2 ) )
=> ( P @ X3 ) )
=> ( P @ A2 ) ) ).
% measure_induct_rule
thf(fact_116_linorder__neqE__nat,axiom,
! [X: nat,Y: nat] :
( ( X != Y )
=> ( ~ ( ord_less @ nat @ X @ Y )
=> ( ord_less @ nat @ Y @ X ) ) ) ).
% linorder_neqE_nat
thf(fact_117_infinite__descent,axiom,
! [P: nat > $o,N2: nat] :
( ! [N3: nat] :
( ~ ( P @ N3 )
=> ? [M2: nat] :
( ( ord_less @ nat @ M2 @ N3 )
& ~ ( P @ M2 ) ) )
=> ( P @ N2 ) ) ).
% infinite_descent
thf(fact_118_nat__less__induct,axiom,
! [P: nat > $o,N2: nat] :
( ! [N3: nat] :
( ! [M2: nat] :
( ( ord_less @ nat @ M2 @ N3 )
=> ( P @ M2 ) )
=> ( P @ N3 ) )
=> ( P @ N2 ) ) ).
% nat_less_induct
thf(fact_119_less__irrefl__nat,axiom,
! [N2: nat] :
~ ( ord_less @ nat @ N2 @ N2 ) ).
% less_irrefl_nat
thf(fact_120_measure__induct,axiom,
! [A: $tType,F: A > nat,P: A > $o,A2: A] :
( ! [X3: A] :
( ! [Y2: A] :
( ( ord_less @ nat @ ( F @ Y2 ) @ ( F @ X3 ) )
=> ( P @ Y2 ) )
=> ( P @ X3 ) )
=> ( P @ A2 ) ) ).
% measure_induct
thf(fact_121_less__not__refl3,axiom,
! [S: nat,T: nat] :
( ( ord_less @ nat @ S @ T )
=> ( S != T ) ) ).
% less_not_refl3
thf(fact_122_less__not__refl2,axiom,
! [N2: nat,M: nat] :
( ( ord_less @ nat @ N2 @ M )
=> ( M != N2 ) ) ).
% less_not_refl2
thf(fact_123_less__not__refl,axiom,
! [N2: nat] :
~ ( ord_less @ nat @ N2 @ N2 ) ).
% less_not_refl
thf(fact_124_nat__neq__iff,axiom,
! [M: nat,N2: nat] :
( ( M != N2 )
= ( ( ord_less @ nat @ M @ N2 )
| ( ord_less @ nat @ N2 @ M ) ) ) ).
% nat_neq_iff
thf(fact_125_mult_Ocomm__neutral,axiom,
! [A: $tType] :
( ( comm_monoid_mult @ A @ ( type2 @ A ) )
=> ! [A2: A] :
( ( times_times @ A @ A2 @ ( one_one @ A ) )
= A2 ) ) ).
% mult.comm_neutral
thf(fact_126_prime__dvd__mult__eq__nat,axiom,
! [P3: nat,M: nat,N2: nat] :
( ( prime @ P3 )
=> ( ( dvd_dvd @ nat @ P3 @ ( times_times @ nat @ M @ N2 ) )
= ( ( dvd_dvd @ nat @ P3 @ M )
| ( dvd_dvd @ nat @ P3 @ N2 ) ) ) ) ).
% prime_dvd_mult_eq_nat
thf(fact_127_prime__def,axiom,
( prime
= ( ^ [P4: nat] :
( ( ord_less @ nat @ ( one_one @ nat ) @ P4 )
& ! [M3: nat] :
( ( dvd_dvd @ nat @ M3 @ P4 )
=> ( ( M3
= ( one_one @ nat ) )
| ( M3 = P4 ) ) ) ) ) ) ).
% prime_def
thf(fact_128_not__prime__eq__prod__nat,axiom,
! [N2: nat] :
( ( ord_less @ nat @ ( one_one @ nat ) @ N2 )
=> ( ~ ( prime @ N2 )
=> ? [M4: nat,K3: nat] :
( ( N2
= ( times_times @ nat @ M4 @ K3 ) )
& ( ord_less @ nat @ ( one_one @ nat ) @ M4 )
& ( ord_less @ nat @ M4 @ N2 )
& ( ord_less @ nat @ ( one_one @ nat ) @ K3 )
& ( ord_less @ nat @ K3 @ N2 ) ) ) ) ).
% not_prime_eq_prod_nat
thf(fact_129_prime__factor__nat,axiom,
! [N2: nat] :
( ( N2
!= ( one_one @ nat ) )
=> ? [P2: nat] :
( ( prime @ P2 )
& ( dvd_dvd @ nat @ P2 @ N2 ) ) ) ).
% prime_factor_nat
thf(fact_130_prime__dvd__mult__nat,axiom,
! [P3: nat,M: nat,N2: nat] :
( ( prime @ P3 )
=> ( ( dvd_dvd @ nat @ P3 @ ( times_times @ nat @ M @ N2 ) )
=> ( ( dvd_dvd @ nat @ P3 @ M )
| ( dvd_dvd @ nat @ P3 @ N2 ) ) ) ) ).
% prime_dvd_mult_nat
thf(fact_131_prime__product,axiom,
! [P3: nat,Q2: nat] :
( ( prime @ ( times_times @ nat @ P3 @ Q2 ) )
=> ( ( P3
= ( one_one @ nat ) )
| ( Q2
= ( one_one @ nat ) ) ) ) ).
% prime_product
thf(fact_132_bigger__prime,axiom,
! [N2: nat] :
? [P2: nat] :
( ( prime @ P2 )
& ( ord_less @ nat @ N2 @ P2 ) ) ).
% bigger_prime
thf(fact_133_one__not__prime__nat,axiom,
~ ( prime @ ( one_one @ nat ) ) ).
% one_not_prime_nat
thf(fact_134_prime__gt__1__nat,axiom,
! [P3: nat] :
( ( prime @ P3 )
=> ( ord_less @ nat @ ( one_one @ nat ) @ P3 ) ) ).
% prime_gt_1_nat
thf(fact_135_division__decomp,axiom,
! [A: $tType] :
( ( semiring_gcd @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A,C: A] :
( ( dvd_dvd @ A @ A2 @ ( times_times @ A @ B2 @ C ) )
=> ? [B4: A,C2: A] :
( ( A2
= ( times_times @ A @ B4 @ C2 ) )
& ( dvd_dvd @ A @ B4 @ B2 )
& ( dvd_dvd @ A @ C2 @ C ) ) ) ) ).
% division_decomp
thf(fact_136_less__numeral__extra_I4_J,axiom,
! [A: $tType] :
( ( linordered_semidom @ A @ ( type2 @ A ) )
=> ~ ( ord_less @ A @ ( one_one @ A ) @ ( one_one @ A ) ) ) ).
% less_numeral_extra(4)
thf(fact_137_in__lset__lmergeI1,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [X: A,Xs: coinductive_llist @ A,Ys: coinductive_llist @ A] :
( ( member @ A @ X @ ( coinductive_lset @ A @ Xs ) )
=> ( ( coindu63249387sorted @ A @ Xs )
=> ( ~ ( coinductive_lfinite @ A @ Ys )
=> ( ? [X4: A] :
( ( member @ A @ X4 @ ( coinductive_lset @ A @ Ys ) )
& ( ord_less_eq @ A @ X @ X4 ) )
=> ( member @ A @ X @ ( coinductive_lset @ A @ ( hammin1138290136lmerge @ A @ Xs @ Ys ) ) ) ) ) ) ) ) ).
% in_lset_lmergeI1
thf(fact_138_in__lset__lmergeI2,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [X: A,Ys: coinductive_llist @ A,Xs: coinductive_llist @ A] :
( ( member @ A @ X @ ( coinductive_lset @ A @ Ys ) )
=> ( ( coindu63249387sorted @ A @ Ys )
=> ( ~ ( coinductive_lfinite @ A @ Xs )
=> ( ? [X4: A] :
( ( member @ A @ X4 @ ( coinductive_lset @ A @ Xs ) )
& ( ord_less_eq @ A @ X @ X4 ) )
=> ( member @ A @ X @ ( coinductive_lset @ A @ ( hammin1138290136lmerge @ A @ Xs @ Ys ) ) ) ) ) ) ) ) ).
% in_lset_lmergeI2
thf(fact_139_nat__less__le,axiom,
( ( ord_less @ nat )
= ( ^ [M3: nat,N4: nat] :
( ( ord_less_eq @ nat @ M3 @ N4 )
& ( M3 != N4 ) ) ) ) ).
% nat_less_le
thf(fact_140_less__imp__le__nat,axiom,
! [M: nat,N2: nat] :
( ( ord_less @ nat @ M @ N2 )
=> ( ord_less_eq @ nat @ M @ N2 ) ) ).
% less_imp_le_nat
thf(fact_141_le__eq__less__or__eq,axiom,
( ( ord_less_eq @ nat )
= ( ^ [M3: nat,N4: nat] :
( ( ord_less @ nat @ M3 @ N4 )
| ( M3 = N4 ) ) ) ) ).
% le_eq_less_or_eq
thf(fact_142_less__or__eq__imp__le,axiom,
! [M: nat,N2: nat] :
( ( ( ord_less @ nat @ M @ N2 )
| ( M = N2 ) )
=> ( ord_less_eq @ nat @ M @ N2 ) ) ).
% less_or_eq_imp_le
thf(fact_143_le__neq__implies__less,axiom,
! [M: nat,N2: nat] :
( ( ord_less_eq @ nat @ M @ N2 )
=> ( ( M != N2 )
=> ( ord_less @ nat @ M @ N2 ) ) ) ).
% le_neq_implies_less
thf(fact_144_less__mono__imp__le__mono,axiom,
! [F: nat > nat,I: nat,J: nat] :
( ! [I2: nat,J2: nat] :
( ( ord_less @ nat @ I2 @ J2 )
=> ( ord_less @ nat @ ( F @ I2 ) @ ( F @ J2 ) ) )
=> ( ( ord_less_eq @ nat @ I @ J )
=> ( ord_less_eq @ nat @ ( F @ I ) @ ( F @ J ) ) ) ) ).
% less_mono_imp_le_mono
thf(fact_145_le__cube,axiom,
! [M: nat] : ( ord_less_eq @ nat @ M @ ( times_times @ nat @ M @ ( times_times @ nat @ M @ M ) ) ) ).
% le_cube
thf(fact_146_le__square,axiom,
! [M: nat] : ( ord_less_eq @ nat @ M @ ( times_times @ nat @ M @ M ) ) ).
% le_square
thf(fact_147_mult__le__mono,axiom,
! [I: nat,J: nat,K2: nat,L: nat] :
( ( ord_less_eq @ nat @ I @ J )
=> ( ( ord_less_eq @ nat @ K2 @ L )
=> ( ord_less_eq @ nat @ ( times_times @ nat @ I @ K2 ) @ ( times_times @ nat @ J @ L ) ) ) ) ).
% mult_le_mono
thf(fact_148_mult__le__mono1,axiom,
! [I: nat,J: nat,K2: nat] :
( ( ord_less_eq @ nat @ I @ J )
=> ( ord_less_eq @ nat @ ( times_times @ nat @ I @ K2 ) @ ( times_times @ nat @ J @ K2 ) ) ) ).
% mult_le_mono1
thf(fact_149_mult__le__mono2,axiom,
! [I: nat,J: nat,K2: nat] :
( ( ord_less_eq @ nat @ I @ J )
=> ( ord_less_eq @ nat @ ( times_times @ nat @ K2 @ I ) @ ( times_times @ nat @ K2 @ J ) ) ) ).
% mult_le_mono2
thf(fact_150_wlog__linorder__le,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [P: A > A > $o,B2: A,A2: A] :
( ! [A5: A,B5: A] :
( ( ord_less_eq @ A @ A5 @ B5 )
=> ( P @ A5 @ B5 ) )
=> ( ( ( P @ B2 @ A2 )
=> ( P @ A2 @ B2 ) )
=> ( P @ A2 @ B2 ) ) ) ) ).
% wlog_linorder_le
thf(fact_151_le__numeral__extra_I4_J,axiom,
! [A: $tType] :
( ( linordered_semidom @ A @ ( type2 @ A ) )
=> ( ord_less_eq @ A @ ( one_one @ A ) @ ( one_one @ A ) ) ) ).
% le_numeral_extra(4)
thf(fact_152_prime__ge__1__nat,axiom,
! [P3: nat] :
( ( prime @ P3 )
=> ( ord_less_eq @ nat @ ( one_one @ nat ) @ P3 ) ) ).
% prime_ge_1_nat
thf(fact_153_gcd__nat_Onot__eq__order__implies__strict,axiom,
! [A2: nat,B2: nat] :
( ( A2 != B2 )
=> ( ( dvd_dvd @ nat @ A2 @ B2 )
=> ( ( dvd_dvd @ nat @ A2 @ B2 )
& ( A2 != B2 ) ) ) ) ).
% gcd_nat.not_eq_order_implies_strict
thf(fact_154_gcd__nat_Ostrict__implies__not__eq,axiom,
! [A2: nat,B2: nat] :
( ( ( dvd_dvd @ nat @ A2 @ B2 )
& ( A2 != B2 ) )
=> ( A2 != B2 ) ) ).
% gcd_nat.strict_implies_not_eq
thf(fact_155_gcd__nat_Ostrict__implies__order,axiom,
! [A2: nat,B2: nat] :
( ( ( dvd_dvd @ nat @ A2 @ B2 )
& ( A2 != B2 ) )
=> ( dvd_dvd @ nat @ A2 @ B2 ) ) ).
% gcd_nat.strict_implies_order
thf(fact_156_gcd__nat_Ostrict__iff__order,axiom,
! [A2: nat,B2: nat] :
( ( ( dvd_dvd @ nat @ A2 @ B2 )
& ( A2 != B2 ) )
= ( ( dvd_dvd @ nat @ A2 @ B2 )
& ( A2 != B2 ) ) ) ).
% gcd_nat.strict_iff_order
thf(fact_157_gcd__nat_Oorder__iff__strict,axiom,
( ( dvd_dvd @ nat )
= ( ^ [A4: nat,B3: nat] :
( ( ( dvd_dvd @ nat @ A4 @ B3 )
& ( A4 != B3 ) )
| ( A4 = B3 ) ) ) ) ).
% gcd_nat.order_iff_strict
thf(fact_158_gcd__nat_Ostrict__trans2,axiom,
! [A2: nat,B2: nat,C: nat] :
( ( ( dvd_dvd @ nat @ A2 @ B2 )
& ( A2 != B2 ) )
=> ( ( dvd_dvd @ nat @ B2 @ C )
=> ( ( dvd_dvd @ nat @ A2 @ C )
& ( A2 != C ) ) ) ) ).
% gcd_nat.strict_trans2
thf(fact_159_gcd__nat_Ostrict__trans1,axiom,
! [A2: nat,B2: nat,C: nat] :
( ( dvd_dvd @ nat @ A2 @ B2 )
=> ( ( ( dvd_dvd @ nat @ B2 @ C )
& ( B2 != C ) )
=> ( ( dvd_dvd @ nat @ A2 @ C )
& ( A2 != C ) ) ) ) ).
% gcd_nat.strict_trans1
thf(fact_160_gcd__nat_Ostrict__trans,axiom,
! [A2: nat,B2: nat,C: nat] :
( ( ( dvd_dvd @ nat @ A2 @ B2 )
& ( A2 != B2 ) )
=> ( ( ( dvd_dvd @ nat @ B2 @ C )
& ( B2 != C ) )
=> ( ( dvd_dvd @ nat @ A2 @ C )
& ( A2 != C ) ) ) ) ).
% gcd_nat.strict_trans
thf(fact_161_gcd__nat_Oantisym,axiom,
! [A2: nat,B2: nat] :
( ( dvd_dvd @ nat @ A2 @ B2 )
=> ( ( dvd_dvd @ nat @ B2 @ A2 )
=> ( A2 = B2 ) ) ) ).
% gcd_nat.antisym
thf(fact_162_gcd__nat_Oirrefl,axiom,
! [A2: nat] :
~ ( ( dvd_dvd @ nat @ A2 @ A2 )
& ( A2 != A2 ) ) ).
% gcd_nat.irrefl
thf(fact_163_gcd__nat_Otrans,axiom,
! [A2: nat,B2: nat,C: nat] :
( ( dvd_dvd @ nat @ A2 @ B2 )
=> ( ( dvd_dvd @ nat @ B2 @ C )
=> ( dvd_dvd @ nat @ A2 @ C ) ) ) ).
% gcd_nat.trans
thf(fact_164_gcd__nat_Orefl,axiom,
! [A2: nat] : ( dvd_dvd @ nat @ A2 @ A2 ) ).
% gcd_nat.refl
thf(fact_165_gcd__nat_Oasym,axiom,
! [A2: nat,B2: nat] :
( ( ( dvd_dvd @ nat @ A2 @ B2 )
& ( A2 != B2 ) )
=> ~ ( ( dvd_dvd @ nat @ B2 @ A2 )
& ( B2 != A2 ) ) ) ).
% gcd_nat.asym
thf(fact_166_order__refl,axiom,
! [A: $tType] :
( ( preorder @ A @ ( type2 @ A ) )
=> ! [X: A] : ( ord_less_eq @ A @ X @ X ) ) ).
% order_refl
thf(fact_167_minf_I8_J,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [T: A] :
? [Z: A] :
! [X4: A] :
( ( ord_less @ A @ X4 @ Z )
=> ~ ( ord_less_eq @ A @ T @ X4 ) ) ) ).
% minf(8)
thf(fact_168_minf_I6_J,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [T: A] :
? [Z: A] :
! [X4: A] :
( ( ord_less @ A @ X4 @ Z )
=> ( ord_less_eq @ A @ X4 @ T ) ) ) ).
% minf(6)
thf(fact_169_pinf_I8_J,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [T: A] :
? [Z: A] :
! [X4: A] :
( ( ord_less @ A @ Z @ X4 )
=> ( ord_less_eq @ A @ T @ X4 ) ) ) ).
% pinf(8)
thf(fact_170_le__refl,axiom,
! [N2: nat] : ( ord_less_eq @ nat @ N2 @ N2 ) ).
% le_refl
thf(fact_171_le__trans,axiom,
! [I: nat,J: nat,K2: nat] :
( ( ord_less_eq @ nat @ I @ J )
=> ( ( ord_less_eq @ nat @ J @ K2 )
=> ( ord_less_eq @ nat @ I @ K2 ) ) ) ).
% le_trans
thf(fact_172_eq__imp__le,axiom,
! [M: nat,N2: nat] :
( ( M = N2 )
=> ( ord_less_eq @ nat @ M @ N2 ) ) ).
% eq_imp_le
thf(fact_173_le__antisym,axiom,
! [M: nat,N2: nat] :
( ( ord_less_eq @ nat @ M @ N2 )
=> ( ( ord_less_eq @ nat @ N2 @ M )
=> ( M = N2 ) ) ) ).
% le_antisym
thf(fact_174_nat__le__linear,axiom,
! [M: nat,N2: nat] :
( ( ord_less_eq @ nat @ M @ N2 )
| ( ord_less_eq @ nat @ N2 @ M ) ) ).
% nat_le_linear
thf(fact_175_le__funD,axiom,
! [B: $tType,A: $tType] :
( ( ord @ B @ ( type2 @ B ) )
=> ! [F: A > B,G: A > B,X: A] :
( ( ord_less_eq @ ( A > B ) @ F @ G )
=> ( ord_less_eq @ B @ ( F @ X ) @ ( G @ X ) ) ) ) ).
% le_funD
thf(fact_176_le__funE,axiom,
! [B: $tType,A: $tType] :
( ( ord @ B @ ( type2 @ B ) )
=> ! [F: A > B,G: A > B,X: A] :
( ( ord_less_eq @ ( A > B ) @ F @ G )
=> ( ord_less_eq @ B @ ( F @ X ) @ ( G @ X ) ) ) ) ).
% le_funE
thf(fact_177_le__funI,axiom,
! [B: $tType,A: $tType] :
( ( ord @ B @ ( type2 @ B ) )
=> ! [F: A > B,G: A > B] :
( ! [X3: A] : ( ord_less_eq @ B @ ( F @ X3 ) @ ( G @ X3 ) )
=> ( ord_less_eq @ ( A > B ) @ F @ G ) ) ) ).
% le_funI
thf(fact_178_le__fun__def,axiom,
! [B: $tType,A: $tType] :
( ( ord @ B @ ( type2 @ B ) )
=> ( ( ord_less_eq @ ( A > B ) )
= ( ^ [F2: A > B,G2: A > B] :
! [X2: A] : ( ord_less_eq @ B @ ( F2 @ X2 ) @ ( G2 @ X2 ) ) ) ) ) ).
% le_fun_def
thf(fact_179_order__subst1,axiom,
! [A: $tType,B: $tType] :
( ( ( order @ B @ ( type2 @ B ) )
& ( order @ A @ ( type2 @ A ) ) )
=> ! [A2: A,F: B > A,B2: B,C: B] :
( ( ord_less_eq @ A @ A2 @ ( F @ B2 ) )
=> ( ( ord_less_eq @ B @ B2 @ C )
=> ( ! [X3: B,Y3: B] :
( ( ord_less_eq @ B @ X3 @ Y3 )
=> ( ord_less_eq @ A @ ( F @ X3 ) @ ( F @ Y3 ) ) )
=> ( ord_less_eq @ A @ A2 @ ( F @ C ) ) ) ) ) ) ).
% order_subst1
thf(fact_180_order__subst2,axiom,
! [A: $tType,C3: $tType] :
( ( ( order @ C3 @ ( type2 @ C3 ) )
& ( order @ A @ ( type2 @ A ) ) )
=> ! [A2: A,B2: A,F: A > C3,C: C3] :
( ( ord_less_eq @ A @ A2 @ B2 )
=> ( ( ord_less_eq @ C3 @ ( F @ B2 ) @ C )
=> ( ! [X3: A,Y3: A] :
( ( ord_less_eq @ A @ X3 @ Y3 )
=> ( ord_less_eq @ C3 @ ( F @ X3 ) @ ( F @ Y3 ) ) )
=> ( ord_less_eq @ C3 @ ( F @ A2 ) @ C ) ) ) ) ) ).
% order_subst2
thf(fact_181_ord__eq__le__subst,axiom,
! [A: $tType,B: $tType] :
( ( ( ord @ B @ ( type2 @ B ) )
& ( ord @ A @ ( type2 @ A ) ) )
=> ! [A2: A,F: B > A,B2: B,C: B] :
( ( A2
= ( F @ B2 ) )
=> ( ( ord_less_eq @ B @ B2 @ C )
=> ( ! [X3: B,Y3: B] :
( ( ord_less_eq @ B @ X3 @ Y3 )
=> ( ord_less_eq @ A @ ( F @ X3 ) @ ( F @ Y3 ) ) )
=> ( ord_less_eq @ A @ A2 @ ( F @ C ) ) ) ) ) ) ).
% ord_eq_le_subst
thf(fact_182_ord__le__eq__subst,axiom,
! [A: $tType,B: $tType] :
( ( ( ord @ B @ ( type2 @ B ) )
& ( ord @ A @ ( type2 @ A ) ) )
=> ! [A2: A,B2: A,F: A > B,C: B] :
( ( ord_less_eq @ A @ A2 @ B2 )
=> ( ( ( F @ B2 )
= C )
=> ( ! [X3: A,Y3: A] :
( ( ord_less_eq @ A @ X3 @ Y3 )
=> ( ord_less_eq @ B @ ( F @ X3 ) @ ( F @ Y3 ) ) )
=> ( ord_less_eq @ B @ ( F @ A2 ) @ C ) ) ) ) ) ).
% ord_le_eq_subst
thf(fact_183_eq__iff,axiom,
! [A: $tType] :
( ( order @ A @ ( type2 @ A ) )
=> ( ( ^ [Y4: A,Z2: A] : Y4 = Z2 )
= ( ^ [X2: A,Y5: A] :
( ( ord_less_eq @ A @ X2 @ Y5 )
& ( ord_less_eq @ A @ Y5 @ X2 ) ) ) ) ) ).
% eq_iff
thf(fact_184_antisym,axiom,
! [A: $tType] :
( ( order @ A @ ( type2 @ A ) )
=> ! [X: A,Y: A] :
( ( ord_less_eq @ A @ X @ Y )
=> ( ( ord_less_eq @ A @ Y @ X )
=> ( X = Y ) ) ) ) ).
% antisym
thf(fact_185_linear,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [X: A,Y: A] :
( ( ord_less_eq @ A @ X @ Y )
| ( ord_less_eq @ A @ Y @ X ) ) ) ).
% linear
thf(fact_186_eq__refl,axiom,
! [A: $tType] :
( ( preorder @ A @ ( type2 @ A ) )
=> ! [X: A,Y: A] :
( ( X = Y )
=> ( ord_less_eq @ A @ X @ Y ) ) ) ).
% eq_refl
thf(fact_187_le__cases,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [X: A,Y: A] :
( ~ ( ord_less_eq @ A @ X @ Y )
=> ( ord_less_eq @ A @ Y @ X ) ) ) ).
% le_cases
thf(fact_188_order_Otrans,axiom,
! [A: $tType] :
( ( order @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A,C: A] :
( ( ord_less_eq @ A @ A2 @ B2 )
=> ( ( ord_less_eq @ A @ B2 @ C )
=> ( ord_less_eq @ A @ A2 @ C ) ) ) ) ).
% order.trans
thf(fact_189_le__cases3,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [X: A,Y: A,Z3: A] :
( ( ( ord_less_eq @ A @ X @ Y )
=> ~ ( ord_less_eq @ A @ Y @ Z3 ) )
=> ( ( ( ord_less_eq @ A @ Y @ X )
=> ~ ( ord_less_eq @ A @ X @ Z3 ) )
=> ( ( ( ord_less_eq @ A @ X @ Z3 )
=> ~ ( ord_less_eq @ A @ Z3 @ Y ) )
=> ( ( ( ord_less_eq @ A @ Z3 @ Y )
=> ~ ( ord_less_eq @ A @ Y @ X ) )
=> ( ( ( ord_less_eq @ A @ Y @ Z3 )
=> ~ ( ord_less_eq @ A @ Z3 @ X ) )
=> ~ ( ( ord_less_eq @ A @ Z3 @ X )
=> ~ ( ord_less_eq @ A @ X @ Y ) ) ) ) ) ) ) ) ).
% le_cases3
thf(fact_190_antisym__conv,axiom,
! [A: $tType] :
( ( order @ A @ ( type2 @ A ) )
=> ! [Y: A,X: A] :
( ( ord_less_eq @ A @ Y @ X )
=> ( ( ord_less_eq @ A @ X @ Y )
= ( X = Y ) ) ) ) ).
% antisym_conv
thf(fact_191_ord__eq__le__trans,axiom,
! [A: $tType] :
( ( ord @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A,C: A] :
( ( A2 = B2 )
=> ( ( ord_less_eq @ A @ B2 @ C )
=> ( ord_less_eq @ A @ A2 @ C ) ) ) ) ).
% ord_eq_le_trans
thf(fact_192_ord__le__eq__trans,axiom,
! [A: $tType] :
( ( ord @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A,C: A] :
( ( ord_less_eq @ A @ A2 @ B2 )
=> ( ( B2 = C )
=> ( ord_less_eq @ A @ A2 @ C ) ) ) ) ).
% ord_le_eq_trans
thf(fact_193_order__class_Oorder_Oantisym,axiom,
! [A: $tType] :
( ( order @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A] :
( ( ord_less_eq @ A @ A2 @ B2 )
=> ( ( ord_less_eq @ A @ B2 @ A2 )
=> ( A2 = B2 ) ) ) ) ).
% order_class.order.antisym
thf(fact_194_order__trans,axiom,
! [A: $tType] :
( ( preorder @ A @ ( type2 @ A ) )
=> ! [X: A,Y: A,Z3: A] :
( ( ord_less_eq @ A @ X @ Y )
=> ( ( ord_less_eq @ A @ Y @ Z3 )
=> ( ord_less_eq @ A @ X @ Z3 ) ) ) ) ).
% order_trans
thf(fact_195_dual__order_Orefl,axiom,
! [A: $tType] :
( ( order @ A @ ( type2 @ A ) )
=> ! [A2: A] : ( ord_less_eq @ A @ A2 @ A2 ) ) ).
% dual_order.refl
thf(fact_196_linorder__wlog,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [P: A > A > $o,A2: A,B2: A] :
( ! [A5: A,B5: A] :
( ( ord_less_eq @ A @ A5 @ B5 )
=> ( P @ A5 @ B5 ) )
=> ( ! [A5: A,B5: A] :
( ( P @ B5 @ A5 )
=> ( P @ A5 @ B5 ) )
=> ( P @ A2 @ B2 ) ) ) ) ).
% linorder_wlog
thf(fact_197_dual__order_Otrans,axiom,
! [A: $tType] :
( ( order @ A @ ( type2 @ A ) )
=> ! [B2: A,A2: A,C: A] :
( ( ord_less_eq @ A @ B2 @ A2 )
=> ( ( ord_less_eq @ A @ C @ B2 )
=> ( ord_less_eq @ A @ C @ A2 ) ) ) ) ).
% dual_order.trans
thf(fact_198_dual__order_Oantisym,axiom,
! [A: $tType] :
( ( order @ A @ ( type2 @ A ) )
=> ! [B2: A,A2: A] :
( ( ord_less_eq @ A @ B2 @ A2 )
=> ( ( ord_less_eq @ A @ A2 @ B2 )
=> ( A2 = B2 ) ) ) ) ).
% dual_order.antisym
thf(fact_199_minf_I11_J,axiom,
! [C3: $tType,D2: $tType] :
( ( ord @ C3 @ ( type2 @ C3 ) )
=> ! [F3: D2] :
? [Z: C3] :
! [X4: C3] :
( ( ord_less @ C3 @ X4 @ Z )
=> ( F3 = F3 ) ) ) ).
% minf(11)
thf(fact_200_minf_I7_J,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [T: A] :
? [Z: A] :
! [X4: A] :
( ( ord_less @ A @ X4 @ Z )
=> ~ ( ord_less @ A @ T @ X4 ) ) ) ).
% minf(7)
thf(fact_201_minf_I5_J,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [T: A] :
? [Z: A] :
! [X4: A] :
( ( ord_less @ A @ X4 @ Z )
=> ( ord_less @ A @ X4 @ T ) ) ) ).
% minf(5)
thf(fact_202_minf_I4_J,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [T: A] :
? [Z: A] :
! [X4: A] :
( ( ord_less @ A @ X4 @ Z )
=> ( X4 != T ) ) ) ).
% minf(4)
thf(fact_203_minf_I3_J,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [T: A] :
? [Z: A] :
! [X4: A] :
( ( ord_less @ A @ X4 @ Z )
=> ( X4 != T ) ) ) ).
% minf(3)
thf(fact_204_minf_I2_J,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [P: A > $o,P5: A > $o,Q: A > $o,Q3: A > $o] :
( ? [Z4: A] :
! [X3: A] :
( ( ord_less @ A @ X3 @ Z4 )
=> ( ( P @ X3 )
= ( P5 @ X3 ) ) )
=> ( ? [Z4: A] :
! [X3: A] :
( ( ord_less @ A @ X3 @ Z4 )
=> ( ( Q @ X3 )
= ( Q3 @ X3 ) ) )
=> ? [Z: A] :
! [X4: A] :
( ( ord_less @ A @ X4 @ Z )
=> ( ( ( P @ X4 )
| ( Q @ X4 ) )
= ( ( P5 @ X4 )
| ( Q3 @ X4 ) ) ) ) ) ) ) ).
% minf(2)
thf(fact_205_minf_I1_J,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [P: A > $o,P5: A > $o,Q: A > $o,Q3: A > $o] :
( ? [Z4: A] :
! [X3: A] :
( ( ord_less @ A @ X3 @ Z4 )
=> ( ( P @ X3 )
= ( P5 @ X3 ) ) )
=> ( ? [Z4: A] :
! [X3: A] :
( ( ord_less @ A @ X3 @ Z4 )
=> ( ( Q @ X3 )
= ( Q3 @ X3 ) ) )
=> ? [Z: A] :
! [X4: A] :
( ( ord_less @ A @ X4 @ Z )
=> ( ( ( P @ X4 )
& ( Q @ X4 ) )
= ( ( P5 @ X4 )
& ( Q3 @ X4 ) ) ) ) ) ) ) ).
% minf(1)
thf(fact_206_pinf_I11_J,axiom,
! [C3: $tType,D2: $tType] :
( ( ord @ C3 @ ( type2 @ C3 ) )
=> ! [F3: D2] :
? [Z: C3] :
! [X4: C3] :
( ( ord_less @ C3 @ Z @ X4 )
=> ( F3 = F3 ) ) ) ).
% pinf(11)
thf(fact_207_pinf_I7_J,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [T: A] :
? [Z: A] :
! [X4: A] :
( ( ord_less @ A @ Z @ X4 )
=> ( ord_less @ A @ T @ X4 ) ) ) ).
% pinf(7)
thf(fact_208_pinf_I5_J,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [T: A] :
? [Z: A] :
! [X4: A] :
( ( ord_less @ A @ Z @ X4 )
=> ~ ( ord_less @ A @ X4 @ T ) ) ) ).
% pinf(5)
thf(fact_209_pinf_I4_J,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [T: A] :
? [Z: A] :
! [X4: A] :
( ( ord_less @ A @ Z @ X4 )
=> ( X4 != T ) ) ) ).
% pinf(4)
thf(fact_210_pinf_I3_J,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [T: A] :
? [Z: A] :
! [X4: A] :
( ( ord_less @ A @ Z @ X4 )
=> ( X4 != T ) ) ) ).
% pinf(3)
thf(fact_211_pinf_I2_J,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [P: A > $o,P5: A > $o,Q: A > $o,Q3: A > $o] :
( ? [Z4: A] :
! [X3: A] :
( ( ord_less @ A @ Z4 @ X3 )
=> ( ( P @ X3 )
= ( P5 @ X3 ) ) )
=> ( ? [Z4: A] :
! [X3: A] :
( ( ord_less @ A @ Z4 @ X3 )
=> ( ( Q @ X3 )
= ( Q3 @ X3 ) ) )
=> ? [Z: A] :
! [X4: A] :
( ( ord_less @ A @ Z @ X4 )
=> ( ( ( P @ X4 )
| ( Q @ X4 ) )
= ( ( P5 @ X4 )
| ( Q3 @ X4 ) ) ) ) ) ) ) ).
% pinf(2)
thf(fact_212_pinf_I1_J,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [P: A > $o,P5: A > $o,Q: A > $o,Q3: A > $o] :
( ? [Z4: A] :
! [X3: A] :
( ( ord_less @ A @ Z4 @ X3 )
=> ( ( P @ X3 )
= ( P5 @ X3 ) ) )
=> ( ? [Z4: A] :
! [X3: A] :
( ( ord_less @ A @ Z4 @ X3 )
=> ( ( Q @ X3 )
= ( Q3 @ X3 ) ) )
=> ? [Z: A] :
! [X4: A] :
( ( ord_less @ A @ Z @ X4 )
=> ( ( ( P @ X4 )
& ( Q @ X4 ) )
= ( ( P5 @ X4 )
& ( Q3 @ X4 ) ) ) ) ) ) ) ).
% pinf(1)
thf(fact_213_ord__eq__less__subst,axiom,
! [A: $tType,B: $tType] :
( ( ( ord @ B @ ( type2 @ B ) )
& ( ord @ A @ ( type2 @ A ) ) )
=> ! [A2: A,F: B > A,B2: B,C: B] :
( ( A2
= ( F @ B2 ) )
=> ( ( ord_less @ B @ B2 @ C )
=> ( ! [X3: B,Y3: B] :
( ( ord_less @ B @ X3 @ Y3 )
=> ( ord_less @ A @ ( F @ X3 ) @ ( F @ Y3 ) ) )
=> ( ord_less @ A @ A2 @ ( F @ C ) ) ) ) ) ) ).
% ord_eq_less_subst
thf(fact_214_ord__less__eq__subst,axiom,
! [A: $tType,B: $tType] :
( ( ( ord @ B @ ( type2 @ B ) )
& ( ord @ A @ ( type2 @ A ) ) )
=> ! [A2: A,B2: A,F: A > B,C: B] :
( ( ord_less @ A @ A2 @ B2 )
=> ( ( ( F @ B2 )
= C )
=> ( ! [X3: A,Y3: A] :
( ( ord_less @ A @ X3 @ Y3 )
=> ( ord_less @ B @ ( F @ X3 ) @ ( F @ Y3 ) ) )
=> ( ord_less @ B @ ( F @ A2 ) @ C ) ) ) ) ) ).
% ord_less_eq_subst
thf(fact_215_order__less__subst1,axiom,
! [A: $tType,B: $tType] :
( ( ( order @ B @ ( type2 @ B ) )
& ( order @ A @ ( type2 @ A ) ) )
=> ! [A2: A,F: B > A,B2: B,C: B] :
( ( ord_less @ A @ A2 @ ( F @ B2 ) )
=> ( ( ord_less @ B @ B2 @ C )
=> ( ! [X3: B,Y3: B] :
( ( ord_less @ B @ X3 @ Y3 )
=> ( ord_less @ A @ ( F @ X3 ) @ ( F @ Y3 ) ) )
=> ( ord_less @ A @ A2 @ ( F @ C ) ) ) ) ) ) ).
% order_less_subst1
thf(fact_216_order__less__subst2,axiom,
! [A: $tType,C3: $tType] :
( ( ( order @ C3 @ ( type2 @ C3 ) )
& ( order @ A @ ( type2 @ A ) ) )
=> ! [A2: A,B2: A,F: A > C3,C: C3] :
( ( ord_less @ A @ A2 @ B2 )
=> ( ( ord_less @ C3 @ ( F @ B2 ) @ C )
=> ( ! [X3: A,Y3: A] :
( ( ord_less @ A @ X3 @ Y3 )
=> ( ord_less @ C3 @ ( F @ X3 ) @ ( F @ Y3 ) ) )
=> ( ord_less @ C3 @ ( F @ A2 ) @ C ) ) ) ) ) ).
% order_less_subst2
thf(fact_217_lt__ex,axiom,
! [A: $tType] :
( ( no_bot @ A @ ( type2 @ A ) )
=> ! [X: A] :
? [Y3: A] : ( ord_less @ A @ Y3 @ X ) ) ).
% lt_ex
thf(fact_218_gt__ex,axiom,
! [A: $tType] :
( ( no_top @ A @ ( type2 @ A ) )
=> ! [X: A] :
? [X1: A] : ( ord_less @ A @ X @ X1 ) ) ).
% gt_ex
thf(fact_219_neqE,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [X: A,Y: A] :
( ( X != Y )
=> ( ~ ( ord_less @ A @ X @ Y )
=> ( ord_less @ A @ Y @ X ) ) ) ) ).
% neqE
thf(fact_220_neq__iff,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [X: A,Y: A] :
( ( X != Y )
= ( ( ord_less @ A @ X @ Y )
| ( ord_less @ A @ Y @ X ) ) ) ) ).
% neq_iff
thf(fact_221_order_Oasym,axiom,
! [A: $tType] :
( ( order @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A] :
( ( ord_less @ A @ A2 @ B2 )
=> ~ ( ord_less @ A @ B2 @ A2 ) ) ) ).
% order.asym
thf(fact_222_dense,axiom,
! [A: $tType] :
( ( dense_order @ A @ ( type2 @ A ) )
=> ! [X: A,Y: A] :
( ( ord_less @ A @ X @ Y )
=> ? [Z: A] :
( ( ord_less @ A @ X @ Z )
& ( ord_less @ A @ Z @ Y ) ) ) ) ).
% dense
thf(fact_223_less__imp__neq,axiom,
! [A: $tType] :
( ( order @ A @ ( type2 @ A ) )
=> ! [X: A,Y: A] :
( ( ord_less @ A @ X @ Y )
=> ( X != Y ) ) ) ).
% less_imp_neq
thf(fact_224_less__asym,axiom,
! [A: $tType] :
( ( preorder @ A @ ( type2 @ A ) )
=> ! [X: A,Y: A] :
( ( ord_less @ A @ X @ Y )
=> ~ ( ord_less @ A @ Y @ X ) ) ) ).
% less_asym
thf(fact_225_less__asym_H,axiom,
! [A: $tType] :
( ( preorder @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A] :
( ( ord_less @ A @ A2 @ B2 )
=> ~ ( ord_less @ A @ B2 @ A2 ) ) ) ).
% less_asym'
thf(fact_226_less__trans,axiom,
! [A: $tType] :
( ( preorder @ A @ ( type2 @ A ) )
=> ! [X: A,Y: A,Z3: A] :
( ( ord_less @ A @ X @ Y )
=> ( ( ord_less @ A @ Y @ Z3 )
=> ( ord_less @ A @ X @ Z3 ) ) ) ) ).
% less_trans
thf(fact_227_less__linear,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [X: A,Y: A] :
( ( ord_less @ A @ X @ Y )
| ( X = Y )
| ( ord_less @ A @ Y @ X ) ) ) ).
% less_linear
thf(fact_228_less__irrefl,axiom,
! [A: $tType] :
( ( preorder @ A @ ( type2 @ A ) )
=> ! [X: A] :
~ ( ord_less @ A @ X @ X ) ) ).
% less_irrefl
thf(fact_229_ord__eq__less__trans,axiom,
! [A: $tType] :
( ( ord @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A,C: A] :
( ( A2 = B2 )
=> ( ( ord_less @ A @ B2 @ C )
=> ( ord_less @ A @ A2 @ C ) ) ) ) ).
% ord_eq_less_trans
thf(fact_230_ord__less__eq__trans,axiom,
! [A: $tType] :
( ( ord @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A,C: A] :
( ( ord_less @ A @ A2 @ B2 )
=> ( ( B2 = C )
=> ( ord_less @ A @ A2 @ C ) ) ) ) ).
% ord_less_eq_trans
thf(fact_231_dual__order_Oasym,axiom,
! [A: $tType] :
( ( order @ A @ ( type2 @ A ) )
=> ! [B2: A,A2: A] :
( ( ord_less @ A @ B2 @ A2 )
=> ~ ( ord_less @ A @ A2 @ B2 ) ) ) ).
% dual_order.asym
thf(fact_232_less__imp__not__eq,axiom,
! [A: $tType] :
( ( order @ A @ ( type2 @ A ) )
=> ! [X: A,Y: A] :
( ( ord_less @ A @ X @ Y )
=> ( X != Y ) ) ) ).
% less_imp_not_eq
thf(fact_233_less__not__sym,axiom,
! [A: $tType] :
( ( preorder @ A @ ( type2 @ A ) )
=> ! [X: A,Y: A] :
( ( ord_less @ A @ X @ Y )
=> ~ ( ord_less @ A @ Y @ X ) ) ) ).
% less_not_sym
thf(fact_234_less__induct,axiom,
! [A: $tType] :
( ( wellorder @ A @ ( type2 @ A ) )
=> ! [P: A > $o,A2: A] :
( ! [X3: A] :
( ! [Y2: A] :
( ( ord_less @ A @ Y2 @ X3 )
=> ( P @ Y2 ) )
=> ( P @ X3 ) )
=> ( P @ A2 ) ) ) ).
% less_induct
thf(fact_235_antisym__conv3,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [Y: A,X: A] :
( ~ ( ord_less @ A @ Y @ X )
=> ( ( ~ ( ord_less @ A @ X @ Y ) )
= ( X = Y ) ) ) ) ).
% antisym_conv3
thf(fact_236_less__imp__not__eq2,axiom,
! [A: $tType] :
( ( order @ A @ ( type2 @ A ) )
=> ! [X: A,Y: A] :
( ( ord_less @ A @ X @ Y )
=> ( Y != X ) ) ) ).
% less_imp_not_eq2
thf(fact_237_less__imp__triv,axiom,
! [A: $tType] :
( ( preorder @ A @ ( type2 @ A ) )
=> ! [X: A,Y: A,P: $o] :
( ( ord_less @ A @ X @ Y )
=> ( ( ord_less @ A @ Y @ X )
=> P ) ) ) ).
% less_imp_triv
thf(fact_238_linorder__cases,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [X: A,Y: A] :
( ~ ( ord_less @ A @ X @ Y )
=> ( ( X != Y )
=> ( ord_less @ A @ Y @ X ) ) ) ) ).
% linorder_cases
thf(fact_239_dual__order_Oirrefl,axiom,
! [A: $tType] :
( ( order @ A @ ( type2 @ A ) )
=> ! [A2: A] :
~ ( ord_less @ A @ A2 @ A2 ) ) ).
% dual_order.irrefl
thf(fact_240_order_Ostrict__trans,axiom,
! [A: $tType] :
( ( order @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A,C: A] :
( ( ord_less @ A @ A2 @ B2 )
=> ( ( ord_less @ A @ B2 @ C )
=> ( ord_less @ A @ A2 @ C ) ) ) ) ).
% order.strict_trans
thf(fact_241_less__imp__not__less,axiom,
! [A: $tType] :
( ( preorder @ A @ ( type2 @ A ) )
=> ! [X: A,Y: A] :
( ( ord_less @ A @ X @ Y )
=> ~ ( ord_less @ A @ Y @ X ) ) ) ).
% less_imp_not_less
thf(fact_242_dual__order_Ostrict__trans,axiom,
! [A: $tType] :
( ( order @ A @ ( type2 @ A ) )
=> ! [B2: A,A2: A,C: A] :
( ( ord_less @ A @ B2 @ A2 )
=> ( ( ord_less @ A @ C @ B2 )
=> ( ord_less @ A @ C @ A2 ) ) ) ) ).
% dual_order.strict_trans
thf(fact_243_not__less__iff__gr__or__eq,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [X: A,Y: A] :
( ( ~ ( ord_less @ A @ X @ Y ) )
= ( ( ord_less @ A @ Y @ X )
| ( X = Y ) ) ) ) ).
% not_less_iff_gr_or_eq
thf(fact_244_order_Ostrict__implies__not__eq,axiom,
! [A: $tType] :
( ( order @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A] :
( ( ord_less @ A @ A2 @ B2 )
=> ( A2 != B2 ) ) ) ).
% order.strict_implies_not_eq
thf(fact_245_dual__order_Ostrict__implies__not__eq,axiom,
! [A: $tType] :
( ( order @ A @ ( type2 @ A ) )
=> ! [B2: A,A2: A] :
( ( ord_less @ A @ B2 @ A2 )
=> ( A2 != B2 ) ) ) ).
% dual_order.strict_implies_not_eq
thf(fact_246_order_Onot__eq__order__implies__strict,axiom,
! [A: $tType] :
( ( order @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A] :
( ( A2 != B2 )
=> ( ( ord_less_eq @ A @ A2 @ B2 )
=> ( ord_less @ A @ A2 @ B2 ) ) ) ) ).
% order.not_eq_order_implies_strict
thf(fact_247_dual__order_Ostrict__implies__order,axiom,
! [A: $tType] :
( ( order @ A @ ( type2 @ A ) )
=> ! [B2: A,A2: A] :
( ( ord_less @ A @ B2 @ A2 )
=> ( ord_less_eq @ A @ B2 @ A2 ) ) ) ).
% dual_order.strict_implies_order
thf(fact_248_dual__order_Ostrict__iff__order,axiom,
! [A: $tType] :
( ( order @ A @ ( type2 @ A ) )
=> ( ( ord_less @ A )
= ( ^ [B3: A,A4: A] :
( ( ord_less_eq @ A @ B3 @ A4 )
& ( A4 != B3 ) ) ) ) ) ).
% dual_order.strict_iff_order
thf(fact_249_dual__order_Oorder__iff__strict,axiom,
! [A: $tType] :
( ( order @ A @ ( type2 @ A ) )
=> ( ( ord_less_eq @ A )
= ( ^ [B3: A,A4: A] :
( ( ord_less @ A @ B3 @ A4 )
| ( A4 = B3 ) ) ) ) ) ).
% dual_order.order_iff_strict
thf(fact_250_order_Ostrict__implies__order,axiom,
! [A: $tType] :
( ( order @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A] :
( ( ord_less @ A @ A2 @ B2 )
=> ( ord_less_eq @ A @ A2 @ B2 ) ) ) ).
% order.strict_implies_order
thf(fact_251_dense__le__bounded,axiom,
! [A: $tType] :
( ( dense_linorder @ A @ ( type2 @ A ) )
=> ! [X: A,Y: A,Z3: A] :
( ( ord_less @ A @ X @ Y )
=> ( ! [W: A] :
( ( ord_less @ A @ X @ W )
=> ( ( ord_less @ A @ W @ Y )
=> ( ord_less_eq @ A @ W @ Z3 ) ) )
=> ( ord_less_eq @ A @ Y @ Z3 ) ) ) ) ).
% dense_le_bounded
thf(fact_252_dense__ge__bounded,axiom,
! [A: $tType] :
( ( dense_linorder @ A @ ( type2 @ A ) )
=> ! [Z3: A,X: A,Y: A] :
( ( ord_less @ A @ Z3 @ X )
=> ( ! [W: A] :
( ( ord_less @ A @ Z3 @ W )
=> ( ( ord_less @ A @ W @ X )
=> ( ord_less_eq @ A @ Y @ W ) ) )
=> ( ord_less_eq @ A @ Y @ Z3 ) ) ) ) ).
% dense_ge_bounded
%----Type constructors (26)
thf(tcon_fun___Orderings_Opreorder,axiom,
! [A6: $tType,A7: $tType] :
( ( preorder @ A7 @ ( type2 @ A7 ) )
=> ( preorder @ ( A6 > A7 ) @ ( type2 @ ( A6 > A7 ) ) ) ) ).
thf(tcon_fun___Orderings_Oorder,axiom,
! [A6: $tType,A7: $tType] :
( ( order @ A7 @ ( type2 @ A7 ) )
=> ( order @ ( A6 > A7 ) @ ( type2 @ ( A6 > A7 ) ) ) ) ).
thf(tcon_fun___Orderings_Oord,axiom,
! [A6: $tType,A7: $tType] :
( ( ord @ A7 @ ( type2 @ A7 ) )
=> ( ord @ ( A6 > A7 ) @ ( type2 @ ( A6 > A7 ) ) ) ) ).
thf(tcon_Nat_Onat___Rings_Olinordered__semidom,axiom,
linordered_semidom @ nat @ ( type2 @ nat ) ).
thf(tcon_Nat_Onat___Groups_Oab__semigroup__mult,axiom,
ab_semigroup_mult @ nat @ ( type2 @ nat ) ).
thf(tcon_Nat_Onat___Rings_Oalgebraic__semidom,axiom,
algebraic_semidom @ nat @ ( type2 @ nat ) ).
thf(tcon_Nat_Onat___Groups_Ocomm__monoid__mult,axiom,
comm_monoid_mult @ nat @ ( type2 @ nat ) ).
thf(tcon_Nat_Onat___Rings_Ocomm__semiring__1,axiom,
comm_semiring_1 @ nat @ ( type2 @ nat ) ).
thf(tcon_Nat_Onat___Groups_Osemigroup__mult,axiom,
semigroup_mult @ nat @ ( type2 @ nat ) ).
thf(tcon_Nat_Onat___Orderings_Owellorder,axiom,
wellorder @ nat @ ( type2 @ nat ) ).
thf(tcon_Nat_Onat___Orderings_Opreorder_1,axiom,
preorder @ nat @ ( type2 @ nat ) ).
thf(tcon_Nat_Onat___Orderings_Olinorder,axiom,
linorder @ nat @ ( type2 @ nat ) ).
thf(tcon_Nat_Onat___Groups_Omonoid__mult,axiom,
monoid_mult @ nat @ ( type2 @ nat ) ).
thf(tcon_Nat_Onat___Orderings_Ono__top,axiom,
no_top @ nat @ ( type2 @ nat ) ).
thf(tcon_Nat_Onat___GCD_Osemiring__gcd,axiom,
semiring_gcd @ nat @ ( type2 @ nat ) ).
thf(tcon_Nat_Onat___Orderings_Oorder_2,axiom,
order @ nat @ ( type2 @ nat ) ).
thf(tcon_Nat_Onat___Orderings_Oord_3,axiom,
ord @ nat @ ( type2 @ nat ) ).
thf(tcon_Nat_Onat___Groups_Oone,axiom,
one @ nat @ ( type2 @ nat ) ).
thf(tcon_Nat_Onat___Rings_Odvd,axiom,
dvd @ nat @ ( type2 @ nat ) ).
thf(tcon_Set_Oset___Orderings_Opreorder_4,axiom,
! [A6: $tType] : ( preorder @ ( set @ A6 ) @ ( type2 @ ( set @ A6 ) ) ) ).
thf(tcon_Set_Oset___Orderings_Oorder_5,axiom,
! [A6: $tType] : ( order @ ( set @ A6 ) @ ( type2 @ ( set @ A6 ) ) ) ).
thf(tcon_Set_Oset___Orderings_Oord_6,axiom,
! [A6: $tType] : ( ord @ ( set @ A6 ) @ ( type2 @ ( set @ A6 ) ) ) ).
thf(tcon_HOL_Obool___Orderings_Opreorder_7,axiom,
preorder @ $o @ ( type2 @ $o ) ).
thf(tcon_HOL_Obool___Orderings_Olinorder_8,axiom,
linorder @ $o @ ( type2 @ $o ) ).
thf(tcon_HOL_Obool___Orderings_Oorder_9,axiom,
order @ $o @ ( type2 @ $o ) ).
thf(tcon_HOL_Obool___Orderings_Oord_10,axiom,
ord @ $o @ ( type2 @ $o ) ).
%----Conjectures (1)
thf(conj_0,conjecture,
member @ nat @ n2 @ ( coinductive_lset @ nat @ hammin2015774020amming ) ).
%------------------------------------------------------------------------------